package com.dtx.qiku.goods.service.impl;

import com.dtx.qiku.annotation.Component;
import com.dtx.qiku.annotation.Resource;
import com.dtx.qiku.goods.dao.GoodsDao;
import com.dtx.qiku.goods.dao.impl.GoodsDaoImpl;
import com.dtx.qiku.goods.entity.Goods;
import com.dtx.qiku.goods.service.GoodsService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.math.BigDecimal;
import java.util.Date;

@Component
public class GoodsServiceImpl implements GoodsService {

    //@Resource
    private GoodsDao goodsDao;

    @Resource
    public void setGoodsDao(GoodsDao goodsDao) {
        this.goodsDao = goodsDao;
    }

    private Logger logger = LoggerFactory.getLogger(GoodsServiceImpl.class);

    private GoodsDao goodsDao2 = new GoodsDaoImpl();

    /**
     * 添加商品
     *        商品编码，在进行添加的时候，不允许重复
     * @param goods
     */
    @Override
    public boolean addGoods(Goods goods) throws Exception{

        //判断 商品编号是否为空
        if(goods.getNum()==null){
            logger.error("商品录入失败，商品编号必传");
            return false;
        }

        // 根据 商品编号，查询商品是否存在
        Goods g = goodsDao2.findGoodsByNum(goods.getNum());

        // 判断 g 是否为空
        if (g!=null) {
            // 如果商品存在，返回false，日志 打印 商品录入失败的原因
            // 打印错误日志
            logger.error("商品录入失败,商品编号已经存在");
            return false;
        }

        // 如果商品 不存在，则进行数据插入
        goodsDao2.saveGoods(goods);

        // 打印 info 日志
        logger.info("商品录入成功");
        return true;

    }

    @Override
    public Goods getGoods(Goods goods) {
        goods = new Goods("111","goodsName",new BigDecimal("33.3"),"goodsDesc",new Date());

        return goods;
    }

    @Override
    public Goods findGoods() {

        return goodsDao.findGoods();
    }


}
